/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.datalayer.dao;

import cz.fi.muni.diplomka.common.enumeration.UnitType;
import cz.muni.fi.diplomka.datalayer.entity.CityUnitsEntity;
import java.util.List;

/**
 * Interface for manipulation with City Units Entity
 *
 * @author Jakub Kutil
 */
public interface CityUnitsDao {

    /**
     * Adds Units in City to DB
     *
     * @param unitsInCityEntity Units to add
     */
    public void addUnitsInCity(CityUnitsEntity unitsInCityEntity);

    /**
     * Edits Units in City in DB
     *
     * @param unitsInCityEntity Units to edit
     */
    public void editUnitsInCity(CityUnitsEntity unitsInCityEntity);

    /**
     * Gets all Units in specified City
     *
     * @param cityId ID of City
     *
     * @return List of all Units in City
     */
    public List<CityUnitsEntity> getAllUnitsInCity(Long cityId);

    /**
     * Gets count of specified Units in City
     *
     * @param cityId ID of City
     * @param unitType type of Units
     *
     * @return count of specified Units in City
     */
    public int getSpecificUnitCountInCity(Long cityId, UnitType unitType);
}
